from django.shortcuts import render
from django.template import Context
import json
import pymssql


def home(request):
    articles_nomenclature_info = "Nomenclatorul de articole este o listă de denumiri comerciale cu care lucrează " \
                                 "farmacia. Altfel spus, nomenclatorul de articole este o listă de produse " \
                                 "comercializate de către farmacie."
    producers_nomenclature_info = "Nomenclatorul de producători este o listă de societăți, definită ca un subset al " \
                                  "listei de parteneri, care practică producția de articole comerciale. Pentru a " \
                                  "putea fi asociată unui articol ca și producător, o societate trebuie mai întâi să" \
                                  "fie definită ca și producător."
    partners_nomenclature_info = "Nomenclatorul de parteneri este o listă de societăți cu care lucrați. De la aceste " \
                                 "societăți puteți primi facturi și de asemenea, puteți emite facturi pentru ele."

    # TODO muta toate variabilele acestea de informatie intr-un modul de documentatie sau string-uri internationalizabile

    '''
    Lista formata din dictionare cu 2 chei: value - un URL si text - o informatie ajutatoare de afisat pentru URL-ul respectiv.
    '''
    nomenclature_categories = [
        {'value': 'articles/', 'text': 'Nomenclator de articole', 'info': articles_nomenclature_info},
        {'value': 'producers/', 'text': 'Nomenclator de producatori', 'info': producers_nomenclature_info},
        {'value': 'partners/', 'text': 'Nomenclator de parteneri si furnizori', 'info': partners_nomenclature_info}]

    # TODO seteaza 'value' dinamic folosind un named route sau o functie care sa returneze url-ul de home al tipului de nomenclator selectat

    ctx = Context({
        'page_title': 'Nomenclator ePharma',
        'nomenclature_categories': nomenclature_categories
    })

    return render(request=request, template_name='nomenclature/home.html', context_instance=ctx)


def get_article_list(request):
    """This method returns the complete list of Articles and uses server-side processing."""
    # TODO Return json list of articles and render it in home.html using SlickGrid
    server = '89.121.204.162'
    user = 'sa'
    password = 'setrio'
    conn = pymssql.connect(server, user, password, "BizPharmaHO")  # FORGOT PORT!!!
    cursor = conn.cursor(as_dict=True)
    cursor.execute("""
    SELECT * FROM Articol
    """)

    row = cursor.fetchone()
    response_data = {'columns': row.keys(), 'rows': []}
    for row in cursor:
        response_data['rows'].append(row)  # sau row['column'] defapt
        if len(response_data['rows']) == 1000000:  # Limit retrieval to 1 million rows
            break

    conn.close()